Apparatus and method for generating codes in communication system

ABSTRACT

A QCTC (Quasi-Complementary Turbo Code) generating apparatus having: a turbo encoder for generating an information symbol sequence and a plurality of parity symbol sequences by encoding the information symbol sequence; a channel interleaver for individually interleaving the symbol sequences, generating new parity symbol sequences by multiplexing the symbols of parity symbol sequences with the same priority levels, and serially concatenating the information symbol sequence and the new parity symbol sequences; and a QCTC generator for generating a sub-code with a given code rate by recursively selecting a predetermined number of symbols from the concatenated symbol sequence at a given starting position.

PRIORITY

[0001] This application claims priority to an application entitled“Apparatus and Method for Generating Codes in Communication System”filed in the Korean Industrial Property Office on Feb. 13, 2001 andassigned Serial No. 2001-8275, and to an application entitled “Apparatusand Method for Generating Codes in Communication System” filed in theKorean Industrial Property Office on Feb. 14, 2001 and assigned SerialNo. 2001-7357, the contents of both of which are hereby incorporated byreference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates generally to code generation in adata communications system, and in particular, to an apparatus andmethod for generating complementary turbo codes, considering thecharacteristics of turbo codes in a packet communications system or ageneral communications system that employs a retransmission scheme.

[0004] 2. Description of the Related Art

[0005] In general, a system using a retransmission scheme (e.g., HARQ:Hybrid Automatic Repeat Request) performs soft combining to improvetransmission throughput. The soft combining techniques are divided intopacket diversity combining and packet code combining. These twocombining schemes are usually called soft packet combining. Although thepacket diversity combining scheme is sub-optimal in performance relativeto the packet code combining scheme, it is favorable due to easyimplementation when performance loss is low.

[0006] A packet transmission system uses the packet code combiningscheme to improve transmission throughput. A transmitter transmits acode with a different code rate at each packet transmission. If an erroris detected from the received packet, a receiver requests aretransmission and performs soft combining between the original packetand a retransmitted packet. The retransmitted packet may have adifferent code from the previous packet. The packet code combiningscheme is a process of combining received N packets with a code rate Rto a code with an effective code rate of RIN prior to decoding, tothereby obtain a coding gain.

[0007] With regard to the packet diversity combining scheme, on theother hand, the transmitter transmits the same code with a code rate Rat each packet transmission. If an error is detected from the receivedpacket, the receiver requests a retransmission and performs softcombining between the original packet and the retransmitted packet. Theretransmitted packet has an identical code to that in the previouspacket. In this sense, the packet diversity combining scheme can beconsidered the received symbol energy averaging on a random channel. Thepacket diversity combining scheme reduces noise power by averaging thesoft outputs of the received input symbols and achieves such a diversitygain as offered by a multi-path channel because the same code isrepeatedly transmitted on a fading channel. However, the packetdiversity combining scheme does not provide such an additional codinggain as obtained according to a code structure in the packet codecombining scheme.

[0008] A turbo encoder for generating the turbo code will be describedhereinbelow. In the case of a turbo encoder with R=⅕, the turbo encodergenerates information symbols X, first parity symbols Y₀, Y₀′ and secondparity symbols Y₁, Y₁′ by encoding input information symbols. The turboencoder is comprised of two constituent encoders and one interleaver.The first parity symbols Y₀ and Y₀′ are output from a first constituentencoder by encoding the input information symbols and the second paritysymbols Y₁ and Y₁′ from a second constituent encoder by encoding theinformation symbols interleaved through the interleaver. In detail, theY₀ is a row of first parity symbols generated from a first constituentencoder, and the Y₀′ is a row of second parity symbols generated fromthe first constituent encoder.

[0009] Due to implementation simplicity, most packet communicationsystems have used the packet diversity combining scheme, which is understudy for application to the synchronous IS-2000 system and theasynchronous UMTS system. The reason is that the existing packetcommunication systems have used convolutional codes and even packet codecombining does not offer a great gain when convolutional codes with alow data rate are used. If a system with R=⅓ supports retransmission,there is not a wide difference in performance between the packet codecombining scheme and the packet diversity combining scheme. Thus, thepacket diversity combining scheme is selected considering implementationcomplexity. However, use of turbo codes as forward error correctioncodes (FEC) requires a different packet combining mechanism because theturbo codes are designed as error correction codes to have performancecharacteristics very close to the “Shannon Channel Capacity Limit” andtheir performance varies obviously with the coding rates unlikeconvolutional codes. Therefore, it can be concluded that packet codecombining is desirable for a packet communication system using turbocodes in a retransmission scheme to achieve the goal of optimumperformance.

SUMMARY OF THE INVENTION

[0010] It is, therefore, an object of the present invention to providean apparatus and method for generating sub-codes that enable optimumcode combining in a retransmission system using turbo codes.

[0011] It is another object of the present invention to provide anapparatus and method for generating complementary codes using turbocodes in a communication system.

[0012] It is a further object of the present invention to provide anapparatus and method for generating sub-codes to be generated afterchannel interleaving in a retransmission system using channelinterleaving.

[0013] The foregoing and other objects of the present invention areachieved by providing a QCTC (Quasi-Complementary Turbo Code) generatingapparatus. In the QCTC generating apparatus, a turbo encoder has aplurality of constituent encoders and at least one interleaver andgenerates an information symbol sequence and a plurality of paritysymbol sequences according to a given code rate by encoding theinformation symbol sequence. The constituent encoders generate theplurality of parity symbol sequences, each of the constituent encodersgenerates at least one parity symbol sequence, and the at least oneparity symbol sequence from one constituent encoder corresponds to theat least one parity symbol sequence from another constituent encoder. Achannel interleaver individually interleaves the information symbolsequence and the parity symbol sequences, alternately arranges thesymbols of the corresponding parity symbol sequences, and seriallyconcatenates the interleaved information symbol sequence and thearranged parity symbol sequences. A QCTC generator generates a sub-codeof a QCTC by repeating the serially concatenated symbol sequence andselecting a predetermined number of symbols from the repeated symbolsequence according to code rate and selection information.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014] The above and other objects, features and advantages of thepresent invention will become more apparent from the following detaileddescription when taken in conjunction with the accompanying drawings inwhich:

[0015]FIG. 1 is a schematic block diagram of a QCTC (Quasi-ComplementaryTurbo Code) generating apparatus according to the present invention;

[0016]FIG. 2 is a block diagram of an embodiment of the QCTC generatingapparatus according to the present invention; and

[0017]FIG. 3 is a block diagram of another embodiment of the QCTCgenerating apparatus according to the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0018] Preferred embodiments of the present invention will be describedhereinbelow with reference to the accompanying drawings. In thefollowing description, well-known functions or constructions are notdescribed in detail since they would obscure the invention inunnecessary detail.

[0019] The present invention provides a QCTC generating method for asystem using channel interleaving and a method of generating QCTCs in apredetermined way irrespective of a variable code length in a systemrequiring QCTCs with a variety of code rates. A QCTC is defined as acomplementary code generated using a turbo code. The QCTC is not aperfect complementary code as noted from the term “quasi” because asub-code includes repeated symbols and has a different characteristicsuch as error correcting capability from another sub-code.

[0020]FIG. 1 is a schematic block diagram of a QCTC generating apparatusaccording to the present invention. The QCTC generating apparatus shownin FIG. 1 is characterized by carrying out symbol sequence repetitionand puncturing after channel interleaving when generating sub-codes.

[0021] Referring to FIG. 1, an encoder 101 generates code symbols byencoding an input encoder packet. A convolutional encoder or a turboencoder can be used as the encoder 101. The encoder 101 has a code rateof, for example, ⅕. For the input of 3,072 information bits, the encoder101 outputs 15,360 code symbols. A channel interleaver 102 interleavesthe code symbols according to a predetermined rule. If the encoder 101is a turbo encoder, the interleaver 102 interleaves information symbolsX, and parity symbols Y₀, Y₁, Y₀′, and Y₁′ separately. A QCTC generator103 generates sub-codes by puncturing and repeating the interleavedsymbols. The channel interleaver 102 and the QCTC generator 103 performthe QCTC generation process.

[0022] If the number of interleaved code symbols is 15,360 and the datarate (or code rate) of sub-codes is given as 307.2 kbps, the QCTCgenerator 103 generates the first sub-code having 21,504 symbols bytaking the 15,360 interleaved code symbols and repeating part of thefirst half of the interleaved code symbols. If the data rate is 614.4kbps, the QCTC generator 103 generates the first sub-code by taking thefirst 10,752 code symbols from the first half of the interleaved codesymbols. And if the data rate is 1228.8 kbps or 2457.6 kbps, the QCTCgenerator 103 generates the first sub-code by taking the first 5,376code symbols from the interleaved code symbols.

[0023] To generate a QCTC (or sub-codes), the channel interleaver 102should take particular characteristics because the five symbols X, Y₀,Y₁, Y₀′, and Y₁′ are distributed through channel interleaving and thedistributed code symbols are not suitable for the input of the QCTCgenerator 103 and because it is not easy to generate sub-codessatisfying the characteristics of a QCTC with the mixed symbols of X,Y₀, Y₁, Y₀′, and Y₁′. In this context, the present invention provides amethod of generating a QCTC in a predetermined way irrespective of thecode rate of each sub-code.

[0024]FIG. 2 is a block diagram of the QCTC generating apparatusaccording to an embodiment of the present invention.

[0025] Referring to FIG. 2, an encoder 201 generates code symbols byencoding input information symbols (i.e. input encoder packet). Theencoder 201 uses a mother code with R=⅕ or with any other code rate. Amother code is determined by the system used. A turbo code with R=⅕ isused herein as a mother code by way of example. Then, the encoder 201generates information symbols X, first parity symbols Y₀ and Y₀′ andsecond parity symbols Y₁ and Y₁′ by encoding input information symbols.The first parity symbols Y₀ and Y₀′ are output from a first constituentencoder and the second parity symbols Y₁ and Y₁′ from a secondconstituent encoder. The first and second constituent encoders (notshown) are contained in encoder 201. The primary parity symbols Y₀ andY₁ from the first and second constituent encoders have a highertransmission priority than the secondary parity symbols Y₀′ and Y₁′.

[0026] A demultiplexer (DEMUX) 202 groups the code symbols received fromthe encoder 201 into information symbols X 203, parity symbols Y₀ 213,parity symbols Y₁ 223, parity symbols Y₀′ 233, and parity symbols Y₁′243 and outputs the five symbol groups to corresponding respectiveinterleavers 204, 214, 224, 234 and 244.

[0027] Interleavers 204, 214, 224, 234 and 244 randomly permute thesequences of the input code symbols by interleaving. Variousinterleaving methods are available as long as the following condition issatisfied.

[0028] (Condition) Interleaved code symbols are partially punctured insuch a way that the puncturing pattern of code symbols beforeinterleaving has a uniform puncturing distance.

[0029] The reason for satisfying the above condition is that when codesymbol groups X, Y₀, Y₁, Y₀′, and Y₁′ are punctured in the same numberof code symbol positions, the distance between punctured code symbolpositions in the code symbols before interleaving must be equal toachieve optimum turbo code performance. In other words, when puncturingis applied to turbo codes, uniformity is a significant factor thatdetermines the performance of the turbo codes. In accordance with thepresent invention, sub-block interleaving applies independently to thecode symbols X, Y₀, Y₀′, Y₁, and Y₁′. Uniform puncturing in eachinterleaver output maintains an equal distance between punctured codesymbols in encoder output. Therefore, it can be concluded that channelinterleaving must be chosen so that puncturing in interleaved codesymbols can maintain a uniform puncturing distribution in channelencoder output.

[0030] Such channel interleaving methods include bit reversal order(BRO) interleaving and partial bit reversal order (PBRO) interleaving.The BRO interleaving is practicable only if the number of inputinformation symbols to an encoder and the number of each code symbol setX, Y₀, Y₀′, Y₁, and Y₁′ are powers of 2, that is, 2^(m) wherein m is aparameter to make a block size of sub block interleaver such as blocksize N=2^(m)*J.

[0031] The PBRO interleaving was designed to satisfy the afore-statedcondition even if the number of information symbols and the number ofeach encoder output symbol set X, Y₀, Y₀′, Y₁, and Y₁′ are not powers of2 in order to overcome the limitation of the BRO interleaving. Adetailed description of this sub-block channel interleaving will beavoided here and it is to be noted that any channel interleaving methodcan be implemented in the present invention as long as it satisfies theabove condition.

[0032] The interleaved code symbols X 206 (shown as a block forconvenience) output from the first interleaver 204 are applied directlyto the input of a symbol concatenator 207. The interleaved code symbolsY₀ and Y₁ from the second and third interleavers 214 and 224 are inputto a first multiplexer (MUX) 205 and the interleaved code symbols Y₀′and Y₁′ from the fourth and fifth interleavers 234 and 244, to a secondMUX 215. That is, the first MUX 205 receives the primary parity symbolsand the second MUX 215 receives the secondary parity symbols.

[0033] The first MUX 205 multiplexes the interleaved parity symbols Y₀and Y₁ 216 and feeds the output to the symbol concatenator 207. Thesecond MUX 215 multiplexes the interleaved parity symbols Y₀′ and Y₁′226 and feeds its output to the symbol concatenator 207. That is, theMUXes 205 and 215 multiplex the parity symbol sequences by prioritylevel. With the aid of the MUXes 205 and 215, the interleaver outputsare rearranged and then divided into three sub-groups, 206, 216 and 226.

[0034] The above-described process, which is essential to generation ofQCTCs according to the present invention, will be described in moredetail. As shown in FIG. 2, information symbols X form an independentsub-group without passing through multiplexing after sub-blockinterleaving. Let the sub-block interleaved symbols be Sb_(i) _(—) X,which can be expressed as

Sb _(i) _(—) X(1), Sb _(i) _(—) X(2), Sb_(i) _(—) X(3), Sb_(i) _(—)X(4)  (1)

[0035] where Sb_(i) _(—) X(1) indicates the first code symbol outputfrom the first interleaver 204. Sb_(i) _(—) X is referred to as sequenceA.

[0036] Then, the interleaved code symbols Y₀ and Y₁ output from thesecond and third interleavers 214 and 224 are grouped into onesub-group. If the code symbols Y₀ are Sb_(i) _(—) Y₀, Sb_(i) _(—) Y₀ canbe expressed as

Sb _(i) _(—) Y ₀(1), Sb _(i) _(—) Y ₀(2), Sb _(i) _(—) Y ₀(3), Sb _(i)_(—) Y ₀(4)  (2)

[0037] where Sb_(i) _(—) Y₀(1) indicates the first code symbol outputfrom the second interleaver 214. If the code symbols Y₁ are Sb_(i) _(—)Y₁, Sb_(i) _(—Y) ₁ can be expressed as

Sb _(i) _(—) Y ₁(1), Sb _(i) _(—) Y ₁(2), Sb _(i) _(—) Y ₁(3), Sb _(i)_(—) Y ₁(4)  (3)

[0038] where Sb_(i) _(—) Y₁(1) and Sb_(i) _(—) Y₁(2) indicate the firstand second code symbols respectively, output from the third interleaver224. After multiplexing the code symbols Y₀ and Y₁,

Sb _(i) _(—) Y ₀(1), Sb _(i) _(—) Y ₁(₁), Sb _(i) _(—) Y ₀(2), Sb _(i)_(—) Y ₁(2), Sb _(i) _(—) Y ₀(3), Sb _(i) _(—) Y ₁(3)  (4)

[0039] These multiplexed symbols are referred to as sequence B.

[0040] The reason for multiplexing the interleaved code symbols Sb_(i)_(—) Y₀ and Sb_(i) _(—) Y₁ is that when M successive symbols arepunctured in the sequence B irrespective of the first half or secondhalf of the sequence B, the number of punctured symbols in Sb_(i) _(—)Y₀ is equal to that of punctured symbols in Sb_(i) _(—) Y₁ only if M isan even number. If M is an odd number, the difference between thenumbers of punctured symbols in Sb_(i) _(—) Y₀ and in Sb_(i) _(—) Y₁ isonly 1. The multiplexing always satisfies the QCTC characteristic thatthe number of punctured parity symbols Y₀ is equal to that of puncturedparity symbols Y₁.

[0041] In the same manner, the interleaved code symbols Y₀′ and Y₁′output from the fourth and fifth interleavers 234 and 244 are groupedinto one sub-group. If the code symbols Y₀′ and Y₁′ are Sb_(i) _(—) Y₀′and Sb_(i) _(—) Y₁′, respectively, Sb_(i) _(—) Y₀′ and Sb_(i) _(—) Y₁′can be expressed as

Sb _(i) _(—) Y ₀′(1), Sb _(i) _(—) Y ₀′(2), Sb _(i) _(—) Y ₀′(3), Sb_(i) _(—) Y ₀′(4)  (5)

[0042] and

Sb _(i) _(—) Y ₁′(1), Sb _(i) _(—) Y ₁′(2), Sb _(i) _(—) Y ₁′(3), Sb_(i) _(—) Y ₁′(4)  (6)

[0043] Then, the output of the second MUX 215 is

Sb _(i) _(—) Y ₀′(1), Sb _(i) _(—) Y ₁′(1), Sb _(i) _(—) Y ₀′(2), Sb_(i) _(—) Y ₁′(2), Sb _(i) _(—) Y ₀′(3), Sb _(i) _(—) Y ₁′(3)  (7)

[0044] These multiplexed symbols are referred to as sequence C.

[0045] The reason for multiplexing the interleaved code symbols Sb_(i)_(—) Y₀′ and Sb_(i) _(—) Y₁′ is that when M successive symbols arepunctured in the sequence C irrespective of the first half or secondhalf of the sequence C, the number of punctured symbols in Sb_(i) _(—)Y₀′ is equal to that of punctured symbols in Sb_(i) _(—) Y₁′ only if Mis an even number. If M is an odd number, the difference between thenumbers of punctured symbols in Sb_(i) _(—) Y₀′ and in Sb_(i) _(—) Y₁′is only 1. The multiplexing always satisfies the QCTC characteristicthat the number of punctured parity symbols Y₀′ is equal to that ofpunctured parity symbols Y₁′.

[0046] The symbol concatenator 207 sequentially concatenates thesequences A, B and C of the first, second, and third sub-groups andgenerates a symbol sequence [A:B:C].

[A:B:C]=[Sb _(i) _(—) X(1), Sb _(i) _(—) X(2), Sb _(i) _(—) X(3), . . .][Sb_(i) _(—) Y ₀(1), Sb _(i) _(—) Y(1), Sb _(i) _(—) Y ₀(2), Sb_(i)_(—) Y ₁(2), . . . ][Sb_(i) _(—) Y ₀′(1), Sb _(i) _(—) Y ₁′(1), Sb _(i)_(—) Y ₀′(2), Sb _(i) _(—) Y ₁′(2), . . . ]  (8)

[0047] As seen from the above formula, information symbols are placedfirst, followed by alternating parity symbols Y₀ and Y₁ and then byalternating parity symbols Y₀′ and Y₁′ in the sequence [A:B:C]. Thissymbol arrangement assumes a very significant meaning in QCTCgeneration, which will be described below.

[0048] Puncturing should be carried out to generate a sub-code with acode rate from the turbo code of (8). The puncturing is defined by a“QCTC”. The QCTC should have the following characteristics.

[0049] (1) Information symbols precede all other code symbols intransmission. Especially, as the code rate of sub-codes is close to 1,this characteristic becomes more important.

[0050] (2) A puncturing pattern is formed so that the number of paritysymbols output from each constituent encoder (a first constituentencoder and a second constituent encoder) is equal or their differencein number is minimum.

[0051] (3) The number of punctured symbols in the parity symbols Y₀ andY₀′ is determined such that the code rate of the first constituentencoder is always less than 1. That is, the performance of turbo codesis ensured when at least one parity symbol Y₀ or Y₀′ exists.

[0052] (4) The distance between punctured symbols in a QCTC resultingfrom puncturing is equal.

[0053] (5) A turbo code produced by combining sub-codes of QCTCs assumesthe characteristics of a quasi-complementary code.

[0054] A QCTC with a sub-code code rate, which is generated bypuncturing or pruning as many symbols as necessary from the end of thesymbol sequence [A:B:C], satisfies the above five characteristics. Inother words, an intended sub-code of a QCTC is generated by repeatingand puncturing as many symbols as needed in the symbol sequence [A:B:C]in a symbol sequence repeater 208 and a symbol puncturer 209. The symbolsequence repeater 208 repeats the symbol sequence received from thesymbol concatenator in a predetermined way. The repetition method isdetermined according to the code rate of the sub-code. The symbolpuncturer 209 punctures or prunes as many symbols as a predeterminednumber, starting with the last symbol in the symbol sequence receivedfrom the symbol sequence repeater 208, to thereby create the sub-code ofthe QCTC. The number of punctured symbols depends on the code rate ofthe sub-code. Therefore, the code rate of the sub-code should beprovided to the symbol sequence repeater 208 and the symbol puncturer209 in order to perform sequence repetition and symbol puncturing.Alternatively, a higher layer controller (not shown) can calculate thenumber of repeated symbols and the number of punctured symbols accordingto a mother code rate and a sub-code rate and feed the information tothe symbol sequence repeater 208 and the symbol puncturer 209.

[0055] In other words, the symbol puncturer 209 selects a predeterminednumber of symbols counted from a given symbol position in the symbolsequence received from the symbol sequence repeater 208, therebygenerating the sub-code of the QCTC. The given symbol position refers tothe symbol next to the last symbol selected for the previoustransmission. Therefore, the symbol puncturer 209 can be called a“symbol selector”.

[0056] The interleavers 203, 213, 223, 233 and 243, the MUXes 205 and215, and the symbol concatenator 207 in FIG. 2 correspond to the channelinterleaver 102 in FIG. 1, and the symbol sequence repeater 208 and thesymbol puncturer 209 both correspond to the QCTC generator 103.

[0057] Returning to FIG. 1, assuming a mother code rate R=⅕ and 3,072input information bits, the channel encoder 101 outputs 15,360 codesymbols. Hereinbelow, there will be a description of generating QCTCswith different code rates (or data rates), for example, a first QCTCC_(0j) at 307.2 kbps, a second QCTC C_(1j) at 614.4 kbps, and a thirdQCTC C_(3j) at 1288.8 kbps, from the code symbols.

[0058] As described before, the 15,360 code symbols are classified intofive sub-groups, interleaved, and then rearranged as the symbol sequenceof Eq. (8). Then, the 15,360 code symbols are subject to repetitionaccording to a predetermined rule and puncturing (or pruning) accordingto a predetermined sub-code code rate. Thus, an intended sub-code isgenerated.

[0059] For a data rate of 307.2 kbps, if the sub-codes of the first QCTCC_(0j) are 21,504 bits in length, the first sub-code C₀₀ is generated byselecting the first 21,504 symbols from the interleaved and repeatedsymbol sequence. The second sub-code C₀₁ is generated by selecting21,504 symbols starting with the symbol following the first sub-code C₀₀from the repeated symbol sequence. The third sub-code C₀₂ is generatedby selecting the following 21,504 symbols.

[0060] Similarly, for a data rate of 614.4 kbps, if the sub-codes of thesecond QCTC C_(1j) are 10,752 bits in length, the first sub-code C₁₀ isgenerated by selecting the first 10,752 symbols from the repeated symbolsequence. In other words, the first sub-code C₁₀ is generated by pruningall subsequent symbols following the first 10,752 symbols in therepeated symbol sequence. The pruning is performed in the symbolpuncturer 209 as stated before. The second sub-code C₁₁ is generated byselecting 10,752 symbols starting with the symbol following the firstsub-code C₁₀ from the repeated symbol sequence. The third sub-code C₁₂is generated by selecting the 10,752 symbols following the secondsub-code C₁₁.

[0061] Similarly, for a data rate of 1228.8 kbps, if the sub-codes ofthe third QCTC C_(2j) are 5,376 bits in length, the first sub-code C₂₀is generated by selecting the first 5,376 symbols from the repeatedsymbol sequence. The second sub-code C₂₁ is generated by selecting 5,376symbols starting with the symbol following the first sub-code C₂₀ fromthe repeated symbol sequence. The third sub-code C₂₂ is generated byselecting the following 5,376 symbols. In this manner, the sub-codes ofthe QCTC at 1228.8 kbps are generated.

[0062] The system stores information about the position of the lastsymbol in the previous transmitted sub-code for each QCTC. When a datarate (or code rate) for retransmission is determined, the system selectsa QCTC corresponding to the data rate and generates a sub-code byselecting a predetermined number of symbols following the stored lastsymbol for the selected QCTC according to the data rate. If the selectedsymbols exceed one interleaved symbol block, the remaining symbols areselected from the following block. In this case, sub-codes are generatedby repeating a block of interleaved symbols. To do so, a storing area isneeded to store the repeated blocks.

[0063] Alternatively, the interleaved symbols can be stored in acircular buffer memory and a sub-code is generated by selecting symbolsrecursively. That is, if interleaved symbols are all selected, apredetermined number of symbols are selected from the interleavedsymbols starting with the first symbol. Then, the symbol sequencerepeater 208 can be omitted since the circular buffer memory functionsas the symbol sequence repeater 208.

[0064] The above embodiment of the present invention describestwo-dimensional QCTCs. In the two-dimensional QCTC scheme, a QCTCcorresponding to each code rate is generated independently and thesub-codes of the QCTC are sequentially transmitted. However, thetwo-dimensional QCTCs are not optimum for the reasons described below.

[0065] As shown in FIG. 2, it is assumed that the first sub-code C₀₀ ofthe first QCTC C_(0j) is used for initial transmission, the firstsub-code C₁₀ of the second QCTC C_(1j) is used for the nexttransmission, and the first sub-code C₂₀ of the third QCTC C_(2j) isused for the third transmission. Then, a receiver decodes data bycombining the three sub-codes (C₀₀, C₁₀, C₂₀). In this case, however,the code combining does not recover an original code with a code rate of⅕, only to increase the symbol energy of information symbols and thusnot to optimize decoding performance. This implies that there is aproblem with the transmission order of the sub-codes, that is, selectionof the sub-codes. To overcome the problem, adaptive QCTCs are proposed.In the adaptive QCTC scheme, the number of code symbols to be selectedis determined according to the code rate of a sub-code, and the sub-codeis generated by selecting the determined number of symbols starting withthe symbol following the last symbol used for the previous transmission.

[0066]FIG. 3 is a block diagram of another embodiment of the QCTCgenerating apparatus. The structure shown in FIG. 3 is the same as thatshown in FIG. 2 except that the symbol sequence repeater and the symbolpuncturer operate in different manners. Therefore, the followingdescription is made mainly of the symbol sequence repeater 308 and thesymbol puncturer 309.

[0067] The symbol sequence repeater 308 repeats a symbol sequencereceived from a symbol concatenator 307 in a predetermined way. Therepetition may be carried out according to a given parameter in thesymbol sequence repeater 308, or under the control of a higher layercontroller (not shown), or upon request of the symbol concatenator 307.The above process is implemented in the same manner as describedreferring to FIG. 2. Then, the symbol puncturer 309 punctures symbolsreceived from the symbol sequence repeater 308 according to a differentrule from the rule applied in FIG. 2 to generate a sub-code. Thepuncturing rule is as follows.

[0068] It is assumed that transmission starts at time k, a sub-codetransmitted at time (k+h) is expressed as C_(ij)(k+h), and the codesymbols of a mother code with R=⅕ are C_(m)(0), C_(m)(1), . . . ,C_(m)(N−1). The number of the code symbols, N, is defined as L_INF×5since the mother code rate is ⅕. Here, L_INF denotes the size of asub-block interleaver, or the number of information symbols.

[0069] Step 1: the length of an initial sub-code is determined.

[0070] For an initial transmission, one C_(i0) of the first sub-codesC₀₀, C₁₀, C₂₀ of available QCTCs is selected according to a given coderate and the length of the selected sub-code C_(i0) is stored as avariable L_SC. The code rate or length L_SC of the sub-code ispredetermined in the system according to channel environment includingtransmission channel condition and input data rate. The description ismade in the context of three QCTCs shown in FIG. 3 for betterunderstanding of the present invention, but the number of sub-codes isnot limited.

[0071] Step 2: a sub-code for initial transmission is selected andtransmitted.

[0072] After the length of a sub-code to be transmitted is determined,C_(m)(0), C_(m)(1), . . . , C_(m)(L_SC−1) are selected among the codesymbols of the mother code. If L_SC exceeds N, C_(m)(0), C_(m)(1), . . ., C_(m)(N−1) are transmitted P times and then C_(m)(0), C_(m)(1), . . ., C_(m)(q−1) are transmitted. Here, P and q are the quotient andremainder of L_SC/N, respectively and P and q are calculated by L_SC modN. Then, the variable q is stored for the next transmission for use indetecting the position of the last symbol of the previous transmittedsub-code with respect to the block of interleaved symbols.

[0073] Step 3: the starting position of a sub-code for the nexttransmission and the length of the sub-code are determined.

[0074] For the next transmission, the code rate R_SC of a new sub-codeto be transmitted is determined according to channel environment and thelength L_SC of the sub-code is determined according to the determinedcode rate. The length L_SC and the code rate R_SC is in the relation of

L _(—) SC=L _(—) INF×(1/R _(—) SC)  (9)

[0075] A higher layer system transmits the sub-code length L_SC and thesub-code code rate R SC to the symbol puncturer 309 for eachtransmission.

[0076] Step 4: a sub-code for the next transmission is selected andtransmitted.

[0077] After the length L_SC of the sub-code to be transmitted isdetermined, C_(m)(q), C_(m)(q+1), . . . , C_(m)(q+L_SC−1) are selectedamong the code symbols of the mother code. In other words, as manysymbols as the sub-code length are selected from the mother code symbolsstarting with the symbol following the last symbol selected for theprevious transmission. If q+L_SC exceeds N, a row comprised of N codesymbols starting with C_(m)(q) are selected recursively and transmittedP times and then the remaining q′ code symbols are sequentiallytransmitted. Here, P and q′ are the quotient and remainder of (L_SC)/N,respectively and the q′ is calculated by (q+L_SC) mod N. Then, the nextsymbol position value of the position of the last selected symbol forthe next transmission is stored to the q. The variable q is the nextsymbol position of the last symbol position among symbols comprised ofthe last transmitted sub-code. After the generated sub-code istransmitted, the procedure returns to step 3.

[0078] The transmission of adaptive QCTCs will be made clear with casesshown in FIG. 3. Referring to FIG. 3, a low rate sub-code with a coderate of {fraction (1/7)} is initially transmitted in Case 1, and a highrate sub-code with a code rate of {fraction (4/7)} is initiallytransmitted in Case 2. As seen from the cases, N (=15,360) successivemother code symbols are repeated and as many code symbols as a sizecorresponding to the length of a sub-code to be transmitted (or the coderate of the sub-code) are selected sequentially from the repeated mothercode symbols, at each transmission.

[0079] In real implementation, a buffer is not used to store (P−1) timesrepeated-mother codes, but a single circular buffer is employed to storeN code symbols and recursively select code symbols to thereby generate asub-code of an intended length. That is, use of the circular buffermemory obviates the need of sequence repetition. Any reception buffer isavailable to a receiver as long as it can store N soft metrics for codecombining.

[0080] While the invention has been shown and described with referenceto certain preferred embodiments thereof, it will be understood by thoseskilled in the art that various changes in form and details may be madetherein without departing from the spirit and scope of the invention asdefined by the appended claims.

What is claimed is:
 1. A QCTC (Quasi-Complementary Turbo Code)generating apparatus comprising: a turbo encoder having a plurality ofconstituent encoders, for generating an information symbol sequence anda plurality of parity symbol sequences according to a given code rate byencoding the information symbol sequence, each of the constituentencoders for generating at least one parity symbol sequence, the atleast one parity symbol sequence from one constituent encodercorresponding to the at least one parity symbol sequence from anotherconstituent encoder; a channel interleaver for individually interleavingthe information symbol sequence and the parity symbol sequences,alternately arranging the symbols of the corresponding parity symbolsequences, and serially concatenating the interleaved information symbolsequence and the arranged parity symbol sequences; and a QCTC generatorfor generating a sub-code of a QCTC by repeating the seriallyconcatenated symbol sequence and selecting a predetermined number ofsymbols from the repeated symbol sequence according to code rate andselection information.
 2. The QCTC generating apparatus of claim 1,wherein the channel interleaver comprises: a plurality of interleaversfor individually interleaving the information symbol sequence and theplurality of parity symbol sequences; a multiplexer for generating a newparity symbol sequence by multiplexing the interleaved symbols of thecorresponding parity symbol sequences; and a symbol concatenator forserially concatenating the interleaved information symbol sequence andthe new parity symbol sequence.
 3. The QCTC generating apparatus ofclaim 1, wherein the QCTC generator comprises: a symbol repeater forrepeating the serially concatenated symbol sequence; and a symbolselector for generating the sub-code by selecting a predetermined numberof symbols from the repeated symbol sequence at a given startingposition according to a given code rate.
 4. The QCTC generatingapparatus of claim 3, wherein the given starting position is theposition of a symbol following the last symbol selected for the previoustransmission.
 5. The QCTC generating apparatus of claim 1, wherein theQCTC generator comprises: a circular buffer memory for storing theserially concatenated symbol sequence; and a symbol selector forgenerating the sub-code by selecting a predetermined number of symbolsfrom the serially concatenated symbol sequence at a given startingposition according to a given code rate.
 6. The QCTC generatingapparatus of claim 5, wherein the given starting position is theposition of a symbol following the last symbol selected for the previoustransmission.
 7. The QCTC generating apparatus of claim 1, wherein theQCTC generator generates the sub-code by selecting a predeterminednumber of symbols from the repeated symbol sequence according to a givencode rate, starting with a symbol following the last symbol selected forthe previous transmission.
 8. The QCTC generating apparatus of claim 1,wherein the channel interleaver individually interleaves the informationsymbol sequence and the plurality of parity symbol sequences by PBRO(Partial Bit Reversal Order) interleaving.
 9. A QCTC(Quasi-Complementary Turbo Code) generating apparatus comprising: aturbo encoder having a plurality of constituent encoders, for generatingan information symbol sequence and a plurality of parity symbolsequences by encoding the information symbol sequence, each constituentencoder for generating at least one parity symbol sequence correspondingto at least one parity symbol sequence from another constituent encoder;an interleaver for individually interleaving the information symbolsequence and the parity symbol sequences; a multiplexer for generating anew parity symbol sequence by multiplexing the interleaved symbols ofthe corresponding parity symbol sequences; a symbol concatenator forserially concatenating the interleaved information symbol sequence andthe new parity symbol sequence; and a QCTC generator for generating asub-code of a QCTC with a given code rate by recursively selecting apredetermined number of symbols from the serially concatenated symbolsequence at a given starting position according to the code rate. 10.The QCTC generating apparatus of claim 9, wherein the interleaverindividually interleaves the information symbol sequence and theplurality of parity symbol sequences by PBRO (Partial Bit ReversalOrder) interleaving.
 11. The QCTC generating apparatus of claim 9,wherein the given starting position is the position of a symbolfollowing the last symbol selected for the previous transmission. 12.The QCTC generating apparatus of claim 9, wherein the QCTC generatorcomprises: a symbol repeater for repeating the serially concatenatedsymbol sequence; and a symbol selector for generating the sub-code byselecting the predetermined number of symbols from the repeated symbolsequence according to the given code rate.
 13. The QCTC generatingapparatus of claim 9, wherein the QCTC generator comprises: a circularbuffer memory for storing the serially concatenated symbol sequence; anda symbol selector for generating the sub-code by selecting thepredetermined number of symbols from the serially concatenated symbolsequence at the given starting position according to the given coderate.
 14. A QCTC (Quasi-Complementary Turbo Code) generating apparatuscomprising: a turbo encoder for generating an information symbolsequence and a plurality of parity symbol sequences by encoding theinformation symbol sequence; a channel interleaver for individuallyinterleaving the information symbol sequence and the parity symbolsequences, generating new parity symbol sequences by multiplexing thesymbols of parity symbol sequences with the same priority levels, andserially concatenating the information symbol sequence and the newparity symbol sequences; and a QCTC generator for generating a sub-codeof a QCTC with a given code rate by recursively selecting apredetermined number of symbols from the serially concatenated symbolsequence at a given starting position according to the code rate. 15.The QCTC generating apparatus of claim 14, wherein the turbo encodercomprises a plurality of constituent encoders, each constituent encodergenerating at least one parity symbol sequence, and at least oneinterleaver, wherein a primary parity symbol sequence from eachconstituent encoder has a higher priority level.
 16. The QCTC generatingapparatus of claim 14, wherein the given starting position is theposition of a symbol following the last symbol selected for the previoustransmission.
 17. A QCTC (Quasi-Complementary Turbo Code) generatingmethod comprising the steps of: generating an information symbolsequence and a plurality of parity symbol sequences by encoding theinformation symbol sequence, the plurality of parity symbol sequencesbeing generated from constituent encoders, at least one parity symbolsequence being generated from each of the constituent encoders, and theat least one parity symbol sequence from one constituent encodercorresponding to the at least one parity symbol sequence from anotherconstituent encoder; individually interleaving the information symbolsequence and the parity symbol sequences; generating a new parity symbolsequence by multiplexing the interleaved symbols of the correspondingparity symbol sequences; serially concatenating the interleavedinformation symbol sequence and the new parity symbol sequence; andgenerating a sub-code of a QCTC with a given code rate by recursivelyselecting a predetermined number of symbols from the seriallyconcatenated symbol sequence at a given starting position according tothe code rate.
 18. The QCTC generating method of claim 17, wherein theinterleaving step is performed by PBRO (Partial Bit Reversal Order)interleaving.
 19. The QCTC generating method of claim 17, wherein thegiven starting position is the position of a symbol following the lastsymbol selected for the previous transmission.
 20. The QCTC generatingmethod of claim 17, wherein the QCTC generation step comprises the stepsof: repeating the serially concatenated symbol sequence; and generatingthe sub-code by selecting the predetermined number of symbols from therepeated symbol sequence according to the given code rate.
 21. The QCTCgenerating method of claim 17, wherein the QCTC generation stepcomprises the steps of: storing the serially concatenated symbolsequence in a circular buffer memory; and generating the sub-code byselecting the predetermined number of symbols from the circular buffermemory at the given starting position according to the given code rate.